void main() {
  //枚举定义很简单
  //1、枚举中的每个值都有一个索引getter，它返回enum声明中值的从0开始的位置。例如，第一个值有索引0，第二个值有索引1
  assert(Color.red.index == 0);
  assert(Color.green.index == 1);
  assert(Color.blue.index == 2);
  //2、获取枚举中所有值的列表，请使用enum的values 常量
  List<Color> colors = Color.values;
  assert(colors[2] == Color.blue);
  //3、可以在switch语句中使用enum，如果switch的case不处理enum的所有值，将会报一个警告消息
  var aColor = Color.blue;

  switch (aColor) {
    case Color.red:
      print('Red as roses!');
      break;
    case Color.green:
      print('Green as grass!');
      break;
    default: // 缺少default将会报错
      print(aColor); // 'Color.blue'
  }
}

enum Color { red, green, blue }
